c++二级>>

来源:百度知道 编辑:UC知道 时间:2024/07/08 02:40:00
帮忙解释一下 i>>=3;是什么意思?
#include <iostream.h>
int main()
{
int i=15;
i>>=3;
cout<<i<<endl;
return 0;
}

你说的哪句话i>>=3等价形式为i=i>>3的,其中的>>为右移运算符,右移运算符将一个二进制位的操作数依次全部右移若干位,移出的低位被舍弃,左边移入的空位或者一律补零,或者补符号。
正整数:(15)10>>2=(00001111)2>>2=(00000011)2>=(3)10=15/2^2.
语句中的(15)10表示15是10进制数。
对正整数右移n位,就相当于将此数整除2^n。

i>>=3;
的含义就是:
i=i>>3;
>>是右移操作,i>>3也就是将i右移3位,注意这是针对二进制数的操作,也就是位操作,
所以需要将15先转化为二进制,也就是1111,
右移操作是将整体右移,高位补0
所以1111右移3位得到0001,也就是十进制的1

所以上面的程序输出结果为:1

i>>=3;
等同于
i = i>>3;
">>"是位移操作符,不懂的话你可以搜下,在这里就不重复了.